In networking environments communication mediums linking nodes are continually operating at higher link speeds (e.g., 1 gigabits/second or greater). In addition, some nodes in a network may have numerous ports to receive or forward data packets associated with data. This data may follow a data or a control path as it is processed and/or is forwarded by the receiving node. The data path requires less node resources since it is primarily port specific. But the control path uses more node resources (e.g., processing power, memory and bandwidth). More node resources are used because the control path needs the node's resources to support many features for all the ports in the node, e.g., various lookups, access control, port arbitration, etc.
In one example, resource constraints at a receiving node on a communication link may lead to congestion. In this example, a forwarding node may forward the data at a rate faster than the receiving node can process. The resource constraints at the receiving node may lead to a throughput/processing disparity between the two nodes. As a result, congestion in the receiving node may occur for data that follows either a data or control path.
Flow control is an example way of addressing congestion at the receiving end of a communication link. One typical way to implement flow control is to send a message via the communication link (in-band), for example, a pause frame. The message instructs one or more other nodes to stop forwarding data to a congested node until another message is sent from the congested node that instructs the transmitting node(s) to remove the pause and begin/continue to forward the data. This type of in-band flow control is used, for example, between nodes communicating in an Ethernet Local Area Network (LAN) operating in compliance with the Institute for Electrical and Electronic Engineers (IEEE) 802.3 standard for the CSMA/CD (Carrier Sense Multiple Access with Collision Detection) protocol. See IEEE 802.3-2002: IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements Part 3: CSMA/CD Access Method and Physical Layer Specifications, published August 2002, and/or later versions of the standard (the “Ethernet standard”).
Another way to implement flow control is using a given Packet to Packet Gap (PPG) at the transmitting node. In one example, PPG is a sum of an Inter Packet Gap (IPG) and a packet length or size. Stated differently, PPG may be the gap between the start times of two consecutive packets. The given PPG is typically determined based on the disparity in the throughput capability (e.g., packets/unit of time) of the transmitting node as compared to the receiving node over a communication medium.